package com.shrct.businessprocess.budget;

import com.shrct.businessprocess.budget.IHasACTEffectBudget;
import com.shrct.businessprocess.budget.RCBudget;
import com.shrct.businessprocess.budget.RCBudgetTaskStatus;
import com.shrct.businessprocess.budget.RCCost4ACTItem;
import com.shrct.businessprocess.budget.impl.RCEX2ExtBudgetImpl;
import com.shrct.businessprocess.budget.proxy.RCEX2ExtBudgetProxy;
import com.shrct.businessprocess.project.RCProjectMoney;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = RCEX2ExtBudgetImpl.class)
public interface RCEX2ExtBudget extends RCBudget, IHasACTEffectBudget {
  public abstract RCProjectMoney getContractPrice();
  
  public abstract Double getContractTaxRate();
  
  public abstract Double getNetTaxRate();
  
  public abstract RCProjectMoney getNetInvoiceTax();
  
  public abstract RCProjectMoney getContractInvoiceTax();
  
  public abstract Iterable<RCCost4ACTItem> getCost4ACItems();
  
  public abstract RCBudgetTaskStatus getBudgetTaskStatus();
  
  /**
   * 判断该预算项目作为任务计划是否已经执行完毕
   */
  public abstract Boolean seemsFinished();
  
  public abstract RCProjectMoney getNetPrice();
  
  public abstract String getTypeId();
  
  public abstract RCProjectMoney getActualCostAmount();
  
  public abstract RCEX2ExtBudgetProxy toProxy();
}
